package eleventh.System类;

import java.util.Calendar;
import java.util.GregorianCalendar;

/**
 * Calendar类可以将取得的时间精确到毫秒。但是这个类本身是一个抽象类，要想使用使用抽象类，必须依靠对象的多态性，通过子类进行父类的实例化操作
 * Calendar的子类是GregorianCalendar类。在Calendar中提供了部分常量：分别表示日期的各个数字
 * public static final int YEAR 取得年
 * MONTH 月
 * DAY_OF_MONTH 日
 * HOUR_OF_DAY 取得小时，24小时制
 * MINUTE 分
 * SECOND 秒
 * MILLISECOND 毫秒
 * 除了全局常量 还有常用方法
 * getInstance()：根据默认的时区实例化对象
 * after(Object when)：判断一个日期是否在指定日期之后
 * before(Object when)：判断一个日期是否在指定日期之前
 * get(int field)：返回给定日历字段的值
 */
//取得系统的当前日期
public class Calendar类 {
    public static void main(String[] args) {
        Calendar c =null;   //声明一个对象
        c= new GregorianCalendar(); //通过子类为其实例化
        System.out.println("年："+c.get(Calendar.YEAR));
        System.out.println("月："+(c.get(Calendar.MONTH)+1));
        System.out.println("日："+c.get(Calendar.DAY_OF_MONTH));
        System.out.println("时："+c.get(Calendar.HOUR_OF_DAY));
        System.out.println("分："+c.get(Calendar.MINUTE));
        System.out.println("秒："+c.get(Calendar.SECOND));
        System.out.println("毫秒："+c.get(Calendar.MILLISECOND));
    }
}
/**
 * 上面程序中，通过GregorianCalendar子类实例化Calendar类，然后通过Calendar类中的各种常量以及方法就可以取得系统的当前时间
 * 但是，如果按照上面的方式取得日期，代码会比较复杂，所以Java中又提供了其他日期的类。
 * DateFormat类
 */
/*
D:\WorkSpaces\Java\jdk-21\bin\java.exe "-javaagent:D:\Software\IntelliJ IDEA\IntelliJ IDEA 2023.3.2\lib\idea_rt.jar=55732:D:\Software\IntelliJ IDEA\IntelliJ IDEA 2023.3.2\bin" -Dfile.encoding=UTF-8 -Dsun.stdout.encoding=UTF-8 -Dsun.stderr.encoding=UTF-8 -classpath D:\WorkSpaces\JavaDevelopBase_start_329\out\production\JavaDevelopBase_start_329 eleventh.System类.Calendar类
年：2024
月：4
日：12
时：14
分：57
秒：56
毫秒：584

Process finished with exit code 0

 */